<?php

namespace Modules\Admin\Http\Controllers\Ebooks;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use Modules\Common\General\Security\Api\Gateway;
use Modules\Common\Models\AdminLog;
use Modules\Common\Models\Ebooks;
use Modules\Common\Models\Orders;
use Modules\Common\Models\UserReadingRecords;
use Modules\Common\Util\Api;
use Modules\Common\Models\Helpers\TrashManager;
use Modules\Common\Util\Database;
use Modules\Common\Exceptions\Base\Exception;


class Delete
{
     /**
     * @Route(path=/api/admin/ebook  method=delete)
     */
    public function index()
    {

        DB::transaction(function () {

            $ebook = Ebooks::find(request('id'));
            if ($ebook == null) {
                Exception::new()
                    ->tellUser('电子书不存在')
                    ->logNotice('电子书不存在', ['request' => request()->all()])
                    ->throw();
            }
            //开始记录删除操作，添加至回收站
            TrashManager::startTrace(sprintf('删除电子书：%s', $ebook->book_name));

            // $orders = Orders::where('ebook_id', '=', $ebook->id)->count();//订单记录
            // $userReadingRecords = UserReadingRecords::where('ebook_id', '=', $ebook->id)->count();
 
            // if ($orders > 0 || $userReadingRecords > 0) {
            //     Exception::new()
            //         ->tellUser('存在电子书关联记录，不可删除')
            //         ->logNotice('存在电子书关联记录，不可删除', ['request' => request()->all()])
            //         ->throw();
            // }

            // 删除操作
            $ebook->delete();

            TrashManager::endTrace();
        });


        return Api::success();
    }
    
    
     /**
     * @Route(path=/api/admin/ebook-batch-delete  method=delete)
     */
    public function index2()
    {
        // 假设请求中传递了一个包含多个分类 ID 的数组，例如：ids=1,2,3
        $ebookIds = request('ids');
        
        // 将字符串转换为数组
        $ebookIdsArray = explode(',', $ebookIds);
        
        // 启动数据库事务
        DB::transaction(function () use ($ebookIdsArray) {
            foreach ($ebookIdsArray as $ebookId) {
                $ebook = Ebooks::find($ebookId);
                if ($ebook == null) {
                    Exception::new()
                        ->tellUser('电子书不存在')
                        ->logNotice('电子书不存在', ['request' => request()->all()])
                        ->throw();
                }
                // 开始记录删除操作，添加至回收站
                TrashManager::startTrace(sprintf('删除电子书：%s', $ebook->book_name));
                
                // $orders = Orders::where('ebook_id', '=', $ebook->id)->count();//订单记录
                // $userReadingRecords = UserReadingRecords::where('ebook_id', '=', $ebook->id)->count();
     
                // if ($orders > 0 || $userReadingRecords > 0) {
                //     Exception::new()
                //         ->tellUser('存在电子书关联记录，不可删除')
                //         ->logNotice('存在电子书关联记录，不可删除', ['request' => request()->all()])
                //         ->throw();
                // }
    
                // 删除操作
                $ebook->delete();
    
                TrashManager::endTrace();
            }
        });


        return Api::success();
    }

}